from selenium.webdriver.support.wait import WebDriverWait

from utils import WebUtilDriver



class BasePage:

    def __init__(self):
        self.driver = WebUtilDriver.get_driver()

    # 封装的代码，用来增强寻找元素的健壮性，获取的是单个元素
    def get_element(self,style,value):
        '''
        当前的方法为了提高代码的健壮性，寻找定位元素
        :param style: 查找方式，可以是xpath,也可以是id，也可以是css选择器
        :param value: 对应方式的值
        :return: 返回的是查找到的元素
        '''
        try:
            wait_obj = WebDriverWait(self.driver, 10)
            element = wait_obj.until(lambda driver: driver.find_element(style, value))

        except Exception as e:
            print('----------------------------->由于查询语句出错，出错的语句是',value)

        else:
            return element

    # 封装的代码，用来增强寻找元素的健壮性，获取的是多个元素
    def get_elements(self,style,value):
        '''
        当前的方法为了提高代码的健壮性，寻找定位元素
        :param style: 查找方式，可以是xpath,也可以是id，也可以是css选择器
        :param value: 对应方式的值
        :return: 返回的是查找到的元素
        '''
        try:
            wait_obj = WebDriverWait(self.driver, 10)
            element_list = wait_obj.until(lambda driver: driver.find_elements(style, value))

        except Exception as e:
            print('----------------------------->由于查询语句出错，出错的语句是',value)

        else:
            return element_list
